﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace UnionistsManagement_DaLat.Areas.Admin.Models
{
    public partial class Unionist
    {
       
        
        /// <summary>
        /// Mã đoàn viên
        /// </summary>
        [ForeignKey("Account")]
        public int ID { get; set; }
        /// <summary>
        /// Mã số sinh viên
        /// </summary>
        [Display(Name = "Mã số sinh viên")]
        [Required(ErrorMessage = "Không được bỏ trống mã số sinh viên")]
        [StringLength(7)]
        [RegularExpression(@"^\d{7}$", ErrorMessage = "Vui lòng nhập mã số sinh viên gồm 7 ký tự số")]
        public string StudentCode { get; set; }
        /// <summary>
        /// Họ và tên
        /// </summary>
        [Display(Name = "Họ và tên")]
        [Required(ErrorMessage = "Không được bỏ trống họ tên")]
        [StringLength(100, ErrorMessage = "Vui lòng không nhập quá 100 ký tự")]
        public string FullName { get; set; }
        /// <summary>
        /// Giới tính
        /// </summary>
        [Display(Name = "Giới tính")]
        [Required(ErrorMessage = "Vui lòng chọn giới tính")]
        [StringLength(10)]
        public string Gender { get; set; }
        /// <summary>
        /// Ngày sinh
        /// </summary>
        [Required(ErrorMessage = "Vui lòng nhập ngày sinh")]
        public Nullable<System.DateTime> Birthday { get; set; }
        /// <summary>
        /// Địa chỉ
        /// </summary>
        [Display(Name = "Địa chỉ")]
        [StringLength(500, ErrorMessage = "Vui lòng không nhập quá 500 ký tự")]
        public string Address { get; set; }
        /// <summary>
        /// Địa chỉ
        /// </summary>
        [Display(Name = "Quê quán")]
        [Required(ErrorMessage = "Vui lòng nhập quê quán")]
        [StringLength(500, ErrorMessage = "Vui lòng không nhập quá 500 ký tự")]
        public string Home { get; set; }
        /// <summary>
        /// Dân tộc
        /// </summary>
        [Display(Name = "Dân tộc")]
        [Required(ErrorMessage = "Vui lòng chọn dân tộc")]
        [StringLength(100, ErrorMessage = "Vui lòng không nhập quá 100 ký tự")]
        public string Race { get; set; }
        /// <summary>
        /// Số điện thoại
        /// </summary>
        [Display(Name = "Số điện thoại")]
        [StringLength(11)]
        [RegularExpression(@"^[0]\d{9,10}$",ErrorMessage = "Vui lòng nhập số điện thoại hợp lệ")]
        public string PhoneNo { get; set; }
        /// <summary>
        /// Địa chỉ email
        /// </summary>
        [Display(Name = "Số điện thoại")]
        [StringLength(50)]
        [RegularExpression(@"^[0]\d{9,10}$", ErrorMessage = "Vui lòng nhập email hợp lệ")]
        public string Email { get; set; }
        /// <summary>
        /// Trình độ văn hóa
        /// </summary>
        [Display(Name = "Trình độ văn hóa")]
        [Required(ErrorMessage = "Vui lòng nhập trình độ văn hóa")]
        [StringLength(100)]
        public string EducationLevel { get; set; }
        /// <summary>
        /// Tôn giáo
        /// </summary>
        [Display(Name = "Tôn giáo")]
        [Required(ErrorMessage = "Vui lòng nhập tôn giáo")]
        [StringLength(50, ErrorMessage = "Vui lòng không nhập quá 50 ký tự")]
        public string Religion { get; set; }
        /// <summary>
        /// Trình độ ngoại ngữ
        /// </summary>
        [Display(Name = "Trình độ ngoại ngữ")]
        [StringLength(50, ErrorMessage = "Vui lòng không nhập quá 50 ký tự")]
        public string Language { get; set; }
        /// <summary>
        /// Quá trình công tác
        /// </summary>
        [Display(Name = "Quá trình công tác")]
        [Column(TypeName = "ntext")]
        public string ProcessOfWork { get; set; }
        /// <summary>
        /// Thông tin thêm
        /// </summary>
        [Display(Name = "Thông tin thêm")]
        [Column(TypeName = "ntext")]
        public string Other { get; set; }
        /// <summary>
        /// Cho phép hiển thị
        /// </summary>
        public Nullable<bool> IsEnable { get; set; }

        [Display(Name = "Lớp")]
        public virtual ClassRoom ClassRoom { get; set; }

   


        /// <summary>
        /// Tài khoản
        /// </summary>
        public virtual Account Account { get; set; }
    }
}
